module sw.locale.localefactory;
import sw.locale.locale_en_us, sw.locale.locale_ja_jp, sw.locale.locale_zh_cn, sw.locale.locale, std.stdio, std.string;

///現地化するインスタンスを作成するクラス
static struct LocaleFactory{
  /**
   * 現地化するlocaleインスタンスを返す
   */
  static invariant(string[Locale.EnumLength])* getLocale(string localeName){
    switch(localeName.tolower()){
      case "en-us":
      case "en":
        return &locale_en_US;
      case "ja-jp":
      case "ja":
        return &locale_ja_JP;
      case "zh-cn":
      case "zh":
        return &locale_zh_CN;
      default:
    }
    return &locale_en_US;
  }
  ///サポートしている言語のリスト
  enum string[] localeList = ["en-us","en","ja-jp","ja","zh-cn","zh"];
}
